package model

import (
	"gitee.com/xuxinzhi2206/corehub/database/mysql"
	"gorm.io/gorm"
)

// 秒杀订单表
type Order struct {
	gorm.Model
	OrderOn       string  `gorm:"type:varchar(100);comment:订单编号;"`
	GoodsID       int64   `gorm:"type:int(10);comment:商品ID;"` //商品ID
	UserID        int64   `gorm:"type:int(10);comment:用户ID;"` //用户ID
	Num           int64   `gorm:"type:int(10);comment:购买数量;"`
	Price         float64 `gorm:"type:decimal(10,2);comment:订单价格;"`                        //订单价格
	PaymentMethod int64   `gorm:"type:tinyint(1);comment:支付方式;"`                           //支付方式
	PaymentStatus int64   `gorm:"type:tinyint(1);default:0;comment:支付方式 0支付宝 1微信 2银联;"`    //支付状态
	OrderStatus   int64   `gorm:"type:tinyint(1);default:0;comment:订单状态 0未支付 1已支付 2支付失败;"` //订单状态
}

// 创建订单方法
func (s *Order) CreateOrder(tx *gorm.DB) (*Order, error) {
	return s, tx.Create(s).Error
}

// 删除订单方法
func (s *Order) DeleteOrderByOrderID() error {
	return mysql.WithMysql(func(db *gorm.DB) error {
		return db.Model(s).Where("id = ?", s.ID).Delete(s).Error
	})
}

// 查询订单方法
func (s *Order) GetOrderByOrderID() error {
	return mysql.WithMysql(func(db *gorm.DB) error {
		return db.Model(s).Where("id = ?", s.ID).First(s).Error
	})
}
